package com.hs.srm.admin.modules.material.entity;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.utils.DictDataUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.hs.srm.base.common.base.CloneableEntity;


/*
 *
 */
@Setter
@Getter
@TableName("material")
@ToString
public class MaterialEntity implements Serializable, CloneableEntity<MaterialEntity> {

    private static final long serialVersionUID = 1L;

    public MaterialEntity() {
        super();
    }
    /*
     * 唯一标识
     */
    @TableId(value = "material_id", type = IdType.UUID)
    @TableField("material_id")
    @Excel(name = "唯一标识", orderNum="1")
    private java.lang.String materialId;

    /*
     * 物料号
     */
    @TableField("material_code")
    @Excel(name = "物料号", orderNum="2")
    private java.lang.String materialCode;

    /*
     * 物料描述
     */
    @TableField("material_desc")
    @Excel(name = "物料描述", orderNum="3")
    private java.lang.String materialDesc;

    /*
     * 创建日期
     */
    @TableField("creation_date")
    @Excel(name = "创建日期", orderNum="4")
    //@JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm", timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private java.util.Date creationDate;

    /*
     * 创建对象的人员名称
     */
    @TableField("created_by")
    @Excel(name = "创建对象的人员名称", orderNum="5")
    private java.lang.String createdBy;

    /*
     * 上次更改的日期
     */
    @TableField("last_update_date")
    @Excel(name = "上次更改的日期", orderNum="6")
    //@JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm", timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private java.util.Date lastUpdateDate;

    /*
     * 对象更改人员的名称
     */
    @TableField("last_updated_by")
    @Excel(name = "对象更改人员的名称", orderNum="7")
    private java.lang.String lastUpdatedBy;

    /*
     * 维护全部物料状态
     */
    @TableField("material_status")
    @Excel(name = "维护全部物料状态", orderNum="8")
    private java.lang.String materialStatus;

    /*
     * 物料类型
     */
    @TableField("material_type")
    @Excel(name = "物料类型", orderNum="9")
    @DictMapping(type = DictDataUtil.DictType.WULX)
    private java.lang.String materialType;

    /*
     * 行业领域
     */
    @TableField("industry_sector")
    @Excel(name = "行业领域", orderNum="10")
    private java.lang.String industrySector;

    /*
     * 物料组
     */
    @TableField("material_group")
    @Excel(name = "物料组", orderNum="11")
    private java.lang.String materialGroup;

    /*
     * 普通项目类别组
     */
    @TableField("normal_item_category")
    @Excel(name = "普通项目类别组", orderNum="12")
    private java.lang.String normalItemCategory;

    /*
     * 旧物料号
     */
    @TableField("old_material_code")
    @Excel(name = "旧物料号", orderNum="13")
    private java.lang.String oldMaterialCode;

    /*
     * 基本计量单位
     */
    @TableField("basic_unit")
    @Excel(name = "基本计量单位", orderNum="14")
    @DictMapping(type= DictDataUtil.DictType.JLDW)
    private java.lang.String basicUnit;

    /*
     * 采购订单的计量单位
     */
    @TableField("po_unit")
    @Excel(name = "采购订单的计量单位", orderNum="15")
    private java.lang.String poUnit;

    /*
     * 货源
     */
    @TableField("goods_source")
    @Excel(name = "货源", orderNum="16")
    private java.lang.String goodsSource;

    /*
     * 开始生效日期
     */
    @TableField("effective_date")
    @Excel(name = "开始生效日期", orderNum="17")
   // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private java.util.Date effectiveDate;

    /*
     * 删除日期
     */
    @TableField("deleted_date")
    @Excel(name = "删除日期", orderNum="18")
   // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private java.util.Date deletedDate;

    /*
     * 物料类别
     */
    @TableField("material_category")
    @Excel(name = "物料类别", orderNum="19")
    @DictMapping(type = DictDataUtil.DictType.WULX)
    private java.lang.String materialCategory;

    /*
     *
     */
    @TableField("sync_date")
    @Excel(name = "", orderNum="20")
   // @JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm", timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private java.util.Date syncDate;

    /*
     * 是否删除状态
     */
    @TableField("isdel")
    @Excel(name = "是否删除状态", orderNum="21")
    private java.lang.Integer isdel;

    /*
     * 备注
     */
    @TableField("remark")
    @Excel(name = "备注", orderNum="22")
    private java.lang.String remark;

    @Override
    public MaterialEntity clone() {
        try {
            return (MaterialEntity) super.clone();
        } catch (CloneNotSupportedException ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
        return null;
    }
}
